
#ifndef PASSWORDGENERATOR_H
#define PASSWORDGENERATOR_H

#include <string>

class PasswordGenerator
{
public:
	enum PasswordConstraints
	{
		LENGTH_MASK = 31,			//=0000 0001 1111   31 characters is the maximum password length
		CAPITAL = 32,				//=0000 0010 0000
		NUMBER = 64,				//=0000 0100 0000
		SPECIAL_MASK = 3968			//=1111 1000 0000
	};

	typedef unsigned int PasswordRules;
	static std::string genRandomPass( PasswordRules rule = CAPITAL | NUMBER | SPECIAL_MASK | 15/*=LENGTH*/ );
	static std::string genWordPass( std::string inputWord, PasswordRules rule = CAPITAL | NUMBER | SPECIAL_MASK | 015/*=LENGTH*/ );
	static std::string genComplexPass( std::string inputWord, int inputNumber, PasswordRules rule = CAPITAL | NUMBER | SPECIAL_MASK | 015/*=LENGTH*/ );


protected:
private:
};

#endif